package com.shujia.day12;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/*
    List集合：元素可以发生重复，有序(指存储和取出的顺序一致)
    Collection【接口】：
         - List【接口】
            ArrayList
         - Set【接口】

    List集合中特有的成员方法：
        void add(int index,E element)
        E remove(int index)
        E get(int index)
        E set(int index,E element)
        ListIterator listIterator()

 */
public class ListDemo1 {
    public static void main(String[] args) {
        List list1 = new ArrayList();

        list1.add("hello");
        list1.add("apple");
        list1.add("banana");
        list1.add("watermelon");
        list1.add("mango");

        System.out.println("list1: " + list1);

        System.out.println("==================================");
        //因为List相关集合具备索引的特点，List集合根据索引提供一些其它集合没有的方法
        //void add(int index,E element) 指定索引位置添加元素 grape
        list1.add(2,"grape");
        System.out.println("list1: " + list1);
        System.out.println("==================================");
        // E remove(int index) 根据索引从集合中移除元素
        System.out.println(list1.remove(2));
        System.out.println("list1: " + list1);
        System.out.println("==================================");
        //E get(int index) 根据索引获取对应元素
        System.out.println(list1.get(3));
        System.out.println("list1: " + list1);
        System.out.println("==================================");
        //E set(int index,E element) 指定索引位置修改元素
        System.out.println(list1.set(3, "orange"));
        System.out.println("list1: " + list1);
        System.out.println("==================================");
        //ListIterator listIterator()
        ListIterator listIterator = list1.listIterator();
        //从前向后取
        while (listIterator.hasNext()){
            System.out.println(listIterator.next());
        }
        System.out.println("==================================");
        //从后向前取
        //注意：一个集合迭代器只有一个游标，要想倒着遍历，必须先正着遍历一遍，所以该方法用的较少
        while (listIterator.hasPrevious()){
            System.out.println(listIterator.previous());
        }




    }
}
